<?php
//
// +---------------------------------------------------------------------------------+
// | Package: EezeeSite Core                                                         |
// +---------------------------------------------------------------------------------+
// | Copyright (C) 2006  EezeeSite Development Team                                  |
// +---------------------------------------------------------------------------------+
// | This program is free software; you can redistribute it and/or                   |
// | modify it under the terms of the GNU General Public License                     |
// | as published by the Free Software Foundation; either version 2                  |
// | of the License, or (at your option) any later version.                          |
// |                                                                                 |
// | This program is distributed in the hope that it will be useful,                 |
// | but WITHOUT ANY WARRANTY; without even the implied warranty of                  |
// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the                   |
// | GNU General Public License for more details.                                    |
// |                                                                                 |
// | You should have received a copy of the GNU General Public License               |
// | along with this program; if not, write to the Free Software                     |
// | Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA. |
// +---------------------------------------------------------------------------------+
// | Author: Mayukh De <mayukhde@gmail.com>                                          |
// +---------------------------------------------------------------------------------+
//

class ESSystemCoreCheck extends ESSystem
{
    var $response;
    var $checkListType = 'coreCheckList';
    
    function ESSystemCoreCheck(&$response)
    {
        $this->response = $response;
        $this->systemCheck($this->checkListType, $this, 'Check');
        return;
    }
    
    function dirPermsCheck()
    {
        if (file_exists($GLOBALS['ES']['CNFDIR'])) {
            if (!is_writable($GLOBALS['ES']['CNFDIR']) || !$this->chmod($GLOBALS['ES']['CNFDIR'])) {
                $this->response->raiseESError(sprintf($GLOBALS['ES']['LANG']['SYSERROR']['DIRNOEXIST'], $GLOBALS['ES']['CNFDIR']), 'core');
            }
        } else {
            $this->response->raiseESError(sprintf($GLOBALS['ES']['LANG']['SYSERROR']['DIRNOEXIST'], $GLOBALS['ES']['CNFDIR']), 'core');
        }
        if ($GLOBALS['ES']['TEMPDIR'] && !empty($GLOBALS['ES']['TEMPDIR'])) {
            if (file_exists($GLOBALS['ES']['TEMPDIR'])) {
                if (!is_writable($GLOBALS['ES']['TEMPDIR']) || !$this->chmod($GLOBALS['ES']['TEMPDIR'])) {
                    $this->response->raiseESError(sprintf($GLOBALS['ES']['LANG']['SYSERROR']['DIRNOWRITE'], $GLOBALS['ES']['TEMPDIR']), 'core');
                } else {
                    ini_set('upload_tmp_dir', $GLOBALS['ES']['TEMPDIR']);
                }
            } else {
                $this->response->raiseESError(sprintf($GLOBALS['ES']['LANG']['SYSERROR']['DIRNOEXIST'], $GLOBALS['ES']['TEMPDIR']), 'core');
            }
        }
        if ($GLOBALS['ES']['SESSIONSDIR'] && !empty($GLOBALS['ES']['SESSIONSDIR'])) {
            if (file_exists($GLOBALS['ES']['SESSIONSDIR'])) {
                if (!is_writable($GLOBALS['ES']['SESSIONSDIR']) || !$this->chmod($GLOBALS['ES']['SESSIONSDIR'])) {
                    $this->response->raiseESError(sprintf($GLOBALS['ES']['LANG']['SYSERROR']['DIRNOWRITE'], $GLOBALS['ES']['SESSIONSDIR']), 'core');
                } else {
                    ini_set('session.save_path', $GLOBALS['ES']['SESSIONSDIR']);
                }
            } else {
                $this->response->raiseESError(sprintf($GLOBALS['ES']['LANG']['SYSERROR']['DIRNOEXIST'], $GLOBALS['ES']['SESSIONSDIR']), 'core');
            }
        }        
        return;
    }
}

?>